package com.soft.line.controller;

import com.soft.line.common.AppletSystemConstant;
import com.soft.line.entity.AppletContract;
import com.soft.line.service.AppletContractService;
import com.soft.line.util.MP.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;


import java.util.Map;

/**
 * 小程序合同控制
 *
 * @author wpb
 * @version 1.0
 * @date 2020/5/26 13:32
 */
@RestController
@RequestMapping("/applet")
public class AppletContractController {

    @Autowired
    private AppletContractService appletContractService;

    /**
     * 小程序使用
     * 查询每个部门的合同总数
     *
     * @return
     */
    @PostMapping("/getContractNum")
    public AjaxResult getContractNum() {
        return appletContractService.getContractNum();
    }

    /**
     * 小程序使用
     * 根据部门id获取合同年列表数据
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/getContractYearList")
    public AjaxResult getContractYearList(@RequestBody Map<String, Object> paraMap) {
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.DEP_ID)))) {
            return AjaxResult.error("部门不能为空");
        }
        return appletContractService.getContractYearList(paraMap);
    }

    /**
     * 小程序接口
     * 根据部门id和签订年份分页查询合同列表
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/getContractList")
    public AjaxResult getContractList(@RequestBody Map<String, Object> paraMap) {
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.DEP_ID)))) {
            return AjaxResult.error("部门不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.SIGN_TIME)))) {
            return AjaxResult.error("年限不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.PAGE_NUM)))) {
            return AjaxResult.error("第几页不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.DATA_NUM)))) {
            return AjaxResult.error("条数不能为空");
        }
        return appletContractService.getContractList(paraMap);
    }

    /**
     * 小程序使用接口
     * 根据合同名称分页模糊查询合同列表
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/getContractSearchList")
    public AjaxResult getContractSearchList(@RequestBody Map<String, Object> paraMap) {
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.CONTRACT_NAME)))) {
            return AjaxResult.error("合同名称不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.PAGE_NUM)))) {
            return AjaxResult.error("第几页不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.DATA_NUM)))) {
            return AjaxResult.error("条数不能为空");
        }
        return appletContractService.getContractSearchList(paraMap);
    }

    /**
     * 根据合同详情信息分页查询合同列表
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/getContractQueryList")
    public AjaxResult getContractQueryList(@RequestBody Map<String, Object> paraMap) {
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.PAGE_NUM)))) {
            return AjaxResult.error("第几页不能为空");
        }
        if (!StringUtils.hasText(String.valueOf(paraMap.get(AppletSystemConstant.DATA_NUM)))) {
            return AjaxResult.error("条数不能为空");
        }
        return appletContractService.getContractQueryList(paraMap);
    }

    /**
     * 小程序使用接口
     * 新增合同
     *
     * @param appletContract 参数
     * @return
     */
    @PostMapping("/addContract")
    public AjaxResult addContract(@Validated @RequestBody AppletContract appletContract) {
        return appletContractService.addContract(appletContract);
    }

    /**
     * 小程序使用
     * 修改合同信息
     *
     * @param appletContract 参数
     * @return
     */
    @PostMapping("/updateContract")
    public AjaxResult updateContract(@Validated @RequestBody AppletContract appletContract) {
        if(appletContract.getId() == null){
            return AjaxResult.error("请选择合同");
        }

        return appletContractService.updateContract(appletContract);
    }

    /**
     * 根据合同id查询合同详情信息
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/getContract")
    public AjaxResult getContract(@RequestBody Map<String, Object> paraMap) {
        return appletContractService.getContract(paraMap);
    }

    /**
     * 小程序使用
     * 根据id删除合同信息
     *
     * @param paraMap 参数
     * @return
     */
    @PostMapping("/deleteContract")
    public AjaxResult deleteContract(@RequestBody Map<String, Object> paraMap) {
        return appletContractService.deleteContract(paraMap);
    }


}
